/** * Returns a new Dataset partitioned by the given partitioning expressions, using * `spark.sql.shuffle.partitions` as number of partitions. * The resulting Dataset is hash partitioned. * * This is the same operation as "DISTRIBUTE BY" in SQL (Hive QL). * * @grouptypedrel * @since 2.0.0 */ @scala.annotation.varargs def repartition(partitionExprs: Column*): Dataset[T] = { repartition(sparkSession.sessionState.conf.numShufflePartitions, partitionExprs: _*) }
val res = spark.sql("select sum(amount) from temp group by substring(city)") // res.foreachPartition(partition=>{ println("---------------------> Partition start ") println("partitionID is "+TaskContext.getPartitionId()) partition.foreach(println) println("=====================> Partition stop ") })